A workflow includes a sequence of connected steps. It is a depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms. For control purposes, workflow may be a view on performed work under a particular aspect, thereby serving as a virtual representation of the performed work. The flow being described may often refer to a document that is being transferred from one step to another. In software engineering, workflow refers to detailed code specifications for running and coordinating a sequence of events. It can be a simple, linear sequence—the classic flow chart, for example—or a conditional, many-branched series of events linked together and interacting within complex feedback loops.
A workflow space in which a workflow definition is composed of multiple activities presents a number of challenges. When a single activity type cannot be loaded, it may not be possible to load the entire workflow. Thus, workflow designers may not be able to edit or open the workflow object graph and to correct the problem. In order to replace one of the activities which form the workflow, it may be necessary to modify the workflow definition, which is impractical as there might be a large number of workflows that make use of that activity and each workflow may have to be modified individually. Furthermore, persisted workflow instances that make use of a recently modified or new activity may not automatically use the new version of the activity when they resume. This may become a significant challenge because workflows are often long-running processes, and old workflows that are still executing may keep making use of an old version of the activities. If a workflow is to be edited in a workflow design application, which loads the activity types, the developer may be required to have the assemblies containing all the activities present in the workflow. This may force workflow applications to release all activities which take part in workflows at once restricting the possibility of private workflow activities.